const app = getApp()

Page({
  data: {
    isLoading: false
  },

  onLoad() {
    // 检查是否已经登录
    if (app.globalData.isLoggedIn) {
      this.redirectToIndex()
    }
  },

  // 处理获取用户信息
  onGetUserInfo(e) {
    if (this.data.isLoading) return
    
    if (e.detail.userInfo) {
      this.setData({ isLoading: true })
      this.handleLogin(e.detail.userInfo)
    } else {
      wx.showToast({
        title: '需要您的授权才能使用',
        icon: 'none'
      })
    }
  },

  // 处理登录
  handleLogin(userInfo) {
    // 获取登录凭证
    wx.login({
      success: (res) => {
        if (res.code) {
          // 保存用户信息到全局数据
          app.globalData.userInfo = userInfo
          
          // 调用登录接口
          this.loginWithServer(res.code, userInfo)
        } else {
          this.setData({ isLoading: false })
          wx.showToast({
            title: '登录失败',
            icon: 'none'
          })
        }
      },
      fail: (err) => {
        console.error('微信登录失败：', err)
        this.setData({ isLoading: false })
        wx.showToast({
          title: '微信登录失败',
          icon: 'none'
        })
      }
    })
  },

  // 调用服务器登录接口
  loginWithServer(code, userInfo) {
    // 构建登录请求数据
    const loginData = {
      code: code,
      userInfo: {
        nickName: userInfo.nickName,
        avatarUrl: userInfo.avatarUrl,
        gender: userInfo.gender,
        country: userInfo.country,
        province: userInfo.province,
        city: userInfo.city,
        language: userInfo.language
      }
    }

    // 发起登录请求
    wx.request({
      url: 'http://localhost:3000/api/login', // 替换为你的服务器地址
      method: 'POST',
      data: loginData,
      success: (res) => {
        if (res.data.success) {
          // 保存登录状态和token
          app.globalData.isLoggedIn = true
          app.globalData.token = res.data.token
          app.globalData.userId = res.data.userId
          
          // 保存到本地存储
          wx.setStorageSync('token', res.data.token)
          wx.setStorageSync('userInfo', userInfo)
          
          // 跳转到首页
          this.redirectToIndex()
        } else {
          wx.showToast({
            title: res.data.message || '登录失败',
            icon: 'none'
          })
        }
      },
      fail: (err) => {
        console.error('服务器登录失败：', err)
        wx.showToast({
          title: '服务器连接失败',
          icon: 'none'
        })
      },
      complete: () => {
        this.setData({ isLoading: false })
      }
    })
  },

  // 跳转到首页
  redirectToIndex() {
    wx.reLaunch({
      url: '/pages/index/index'
    })
  },

  // 显示隐私政策
  showPrivacyPolicy() {
    wx.showModal({
      title: '用户协议和隐私政策',
      content: '感谢您使用LinkTree。我们非常重视您的个人信息和隐私保护。使用我们的服务即表示您同意我们按照隐私政策收集和使用您的相关信息。',
      showCancel: false,
      confirmText: '我知道了'
    })
  }
}) 